﻿using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Linq;

namespace MQTTServer.Models
{
    public class Constants
    {
        /// <summary>
        /// 连接(海清)
        /// </summary>
        public const string HQ_Basic = "mqtt/face/basic";

        /// <summary>
        /// 连接(芊熠)
        /// </summary>
        public const string QY_Basic = "/hiot/connection";
    }

    /// <summary>
    /// 考勤设备厂家
    /// </summary>
    public enum 考勤设备设备厂家
    {
        海清 = 1,
        芊熠 = 2
    }

    #region 认证识别结果推送

    public enum VerifyStatus
    {
        无 = 0,
        允许 = 1,
        拒绝 = 2,
        还没有注册 = 3,

        [Display(Name = "待核验(开门方式为 3:人脸核验远程开门方式的控制记录)")]
        待核验 = 22,

        [Display(Name = "无权限（特殊版本非通行时间段的控制记录）")]
        无权限 = 24
    }

    public enum PersonType
    {
        白名单 = 0,
        黑名单 = 1
    }

    public enum Sendintime
    {
        [Display(Name = "非实时数据（非 10S 内产生对的记录）")]
        非实时数据 = 0,
        [Display(Name = "实时数据（10S 内产生对的记录）")] 实时数据 = 1
    }

    public enum Otype
    {
        白名单验证 = 1,
        [Display(Name = "实时数据（10S 内产生对的记录）")] 身份证验证 = 2,
        [Display(Name = "白名单 + 身份证验证")] 白名单_身份证验证 = 3,
        [Display(Name = "MQTT 远程开门")] MQTT_远程开门 = 7,
        [Display(Name = "RF 卡验证(内置刷卡机型)")] RF_卡验证 = 21,

        [Display(Name = "RF 卡验证 + 白名单验证(内置刷卡机型)")]
        RF_卡验证_白名单验证 = 22,
        韦根卡验证 = 24,
        [Display(Name = "韦根卡 + 白名单验证")] 韦根卡_白名单验证 = 25,
        [Display(Name = "HTTP 远程开门")] HTTP_远程开门 = 27,
    }

    public enum isNoMask
    {
        戴口罩通行 = 0,
        未戴口罩通行 = 1
    }

    #endregion

    #region 增加和修改人员名单

    public enum TempCardType
    {
        永久名单 = 0,
        [Display(Name = "临时名单 1(时间段有效)")] 临时名单1 = 1,
        [Display(Name = "临时名单 2(每天同一时间段有效)")] 临时名单2 = 2,
        [Display(Name = "临时名单 3(次数有效)")] 临时名单3 = 3,

        [Display(Name = "临时名单 4（每天同一时间段有效或者次数有效）")]
        临时名单4 = 4
    }

    public enum Nation
    {
        汉 = 1,
        蒙古 = 2,
        回 = 3,
        藏 = 4,
        维吾尔 = 5,
        苗 = 6,
        彝 = 7,
        壮 = 8,
        布依 = 9,
        朝鲜 = 10,
        满 = 11,
        侗 = 12,
        瑶 = 13,
        白 = 14,
        土家 = 15,
        哈尼 = 16,
        哈萨克 = 17,
        傣 = 18,
        黎 = 19,
        傈僳 = 20,
        佤 = 21,
        畲 = 22,
        高山 = 23,
        拉祜 = 24,
        水 = 25,
        东乡 = 26,
        纳西 = 27,
        景颇 = 28,
        柯尔克孜 = 29,
        土 = 30,
        达斡尔 = 31,
        仫佬 = 32,
        羌 = 33,
        布朗 = 34,
        撒拉 = 35,
        毛南 = 36,
        仡佬 = 37,
        锡伯 = 38,
        阿昌 = 39,
        普米 = 40,
        塔吉克 = 41,
        怒 = 42,
        乌孜别克 = 43,
        俄罗斯 = 44,
        鄂温克 = 45,
        德昂 = 46,
        保安 = 47,
        裕固 = 48,
        京 = 49,
        塔塔尔 = 50,
        独龙 = 51,
        鄂伦春 = 52,
        赫哲 = 53,
        门巴 = 54,
        珞巴 = 55,
        基诺 = 56,
        其他 = 57,
    }

    public enum Gender
    {
        男 = 0,
        女 = 1
    }

    public enum CardType2
    {
        公用卡号 = 0,
        自动生成 = 1,
        手动输入 = 2,
        不使用门禁 = 3,
    }

    public enum WiegandType
    {
        [Display(Name = "26位")] TwentySix位 = 0,

        [Display(Name = "34位")] ThirtyFour位 = 1,

        [Display(Name = "26位(8+16 facilitycode+userid(设备代码+卡号)分开填写)")]
        TwentySix位_1 = 6,

        [Display(Name = "34位(8+16 facilitycode+userid(设备代码+卡号)分开填写)")]
        ThirtyFour位_1 = 7
    }

    public enum CardMode
    {
        十进制构成卡号 = 0,
        十六进制构成卡号 = 1,
    }

    public enum RFCardMode
    {
        十进制构成卡号 = 0,
        十六进制构成卡号 = 1,
    }

    public enum CardType
    {
        身份证 = 0,
    }

    public enum Picture
    {
        名单不带图片信息 = 0,
        名单带图片信息 = 1,
    }

    public enum PersonType2
    {
        白名单 = 0,
        黑名单 = 1,
        所有 = 2,
    }

    public enum Gender2
    {
        男 = 0,
        女 = 1,
        所有 = 2,
    }

    #endregion

    #region 下发删除所有人员名单

    public enum Deleteall
    {
        确认删除 = 1,
        直接删除 = 0,
    }

    #endregion

    #region 批量增加人员

    public enum IsCheckSimilarity
    {
        不检测图片相似度 = 0,
        检测图片相似度 = 1,
    }

    public enum QueryProgressStatus
    {
        空闲状态 = 0,
        AddPersons_忙状态 = 1,
        EditPersons_忙状态 = 2,
        EditPersonsNew_忙状态 = 3,
    }

    #endregion

    #region 远程升级版本和获取版本信息

    public enum UpgradeType
    {
        //中间的值（2、3、4）预留
        [Display(Name = "软件固件升级（x.swx）")] 软件固件升级 = 1,
        [Display(Name = "授权文件（x.lic）")] 授权文件 = 5,
    }

    public enum OpenDoor
    {
        不开门 = 0,
        开门 = 1,
    }

    public enum PushAckType
    {
    回复接收到陌生人抓拍信息 = 1,
    回复接收到认证记录信息 = 2,
    }

    #endregion

    #region 播放语音文件

    public enum UsrType
    {
    播放一体机原有声音文件 = 1, 
    播放一体机客户自定义声音文件 = 2,
    }

    #endregion

    #region 二维码

    public enum ImageType
    {
    待显示二维码图像 = 1,
    待显示图像格式为_png = 2,
    待显示图像格式为_jpg = 3,
    待显示图像格式为_bmp = 4,
    }

    #endregion

    #region 获取抓拍场景图

    public enum ImgType
    {
    yuv = 0, 
    bmp = 1, 
    jpeg = 2,
    }

    #endregion

    #region 检测图片人脸

    public enum DetectFace
    {
    未检测到人脸 = 0,
    检测到人脸 = 1,
    }

    #endregion
}